//ybzuo
#pragma once
#include "ltbasedefs.h"
class shader_manager ;

class arg_seter
{
public:
    arg_seter(shader_manager* mgr);
	void bind_obj(HOBJECT _obj){m_obj=_obj;}
	virtual ~arg_seter();
	virtual void set_args(LTEffectShader *pEffect,const LTShaderDeviceState &ShaderDeviceState){}
	HOBJECT get_obj()const{return m_obj;}
protected:
    shader_manager* get_shader_manager() {return m_shader_mgr ;}
protected:
	LTMatrix* m_world ;
	LTMatrix* m_view_proj ;
	LTMatrix* m_view ;
private:
    shader_manager* m_shader_mgr ;
	//no copy
	arg_seter(const arg_seter&);
	void operator=(const arg_seter&);
	HOBJECT m_obj;

};
